
//标识符不能以数字开头的，中文却可以的，数字开头的Key就必须用""包裹了。
//{}对象的key自动排序的，[]数组隐含有排序顺序。
import * as React from "react";

/**设备大类：7种普通的+1种国家级检验+1种目录外的。
 * F 安全附件 731 安全阀?? 不能独立构成一个设备，监管目标太小了，检验管理太细了，无法进入Eqp设备模型的表。 没有单独报告/收费。
 * 7 压力管道元件 {目录内，给制造生产的} 制造的，一次性的，批次的雷同多个单元；没必要进入Eqp设备表。
 * */
export const 设备种类 = {
    "3": "电梯",
    "2": "压力容器",
    R: "常压容器",
    "1": "锅炉",
    "4": "起重机械",
    "5": "场（厂）内专用机动车辆",
    "6": "大型游乐设施",
    "8": "压力管道",
    "9": "客运索道",
};


export const 设备类别 = {
    "3": {
        "31": "曳引与强制驱动电梯",
        "32": "液压驱动电梯",
        "33": "自动扶梯与自动人行道",
        "34": "其它类型电梯",
    },
    "2":{
        "21": "固定式压力容器",
        "22": "移动式压力容器",
        "23": "气瓶",  //监察上独立出去,钢瓶数量庞大单个设备目标当量很低,每个瓶子一份报告?打印个标签还差不多,登记在案
        "24": "氧舱",
    },
    "4":{
        "41": "桥式起重机",
        "42": "门式起重机",
        "43": "塔式起重机",
        "44": "流动式起重机",
        "47": "门座式起重机",
        "48": "升降机",
        "49": "缆索式起重机",
        "4A": "桅杆式起重机",
        "4D": "机械式停车设备",
    },
    "8":{
        "81": "长输管道",
        "82": "公用管道",
        "83": "工业管道",
    },
    "1": {
        "11": "承压蒸汽锅炉",
        "12": "承压热水锅炉",
        "13": "有机热载体锅炉",
    },
    "5":{
        "51": "机动工业车辆",
        "52": "非公路用旅游观光车辆",
    },
    "6":{
        "61": "观览车类",
        "62": "滑行车类",
        "63": "架空游览车类",
        "64": "陀螺类",
        "65": "飞行塔类",
        "66": "转马类",
        "67": "自控飞机类",
        "68": "赛车类",
        "69": "小火车类",
        "6A": "碰碰车类",
        "6B": "滑道类",
        "6D": "水上游乐设施",
        "6E": "无动力游乐设施",
    },
    "9":{
        "91": "客运架空索道",
        "92": "客运缆车",
        "93": "客运拖牵索道",
    },
    R: {
        "R3":"危险化学品常压容器"       //<非国家标准目录的> ocat=true 是目录外
    },
}  as any;

/**标准目录最后的一层次
 * */
export const 设备品种 ={
    "31": {
      "311": "曳引驱动乘客电梯",
      "312": "曳引驱动载货电梯",
      "313": "强制驱动载货电梯",
    },
    "32": {
        "321": "液压乘客电梯",
        "322": "液压载货电梯",
    },
    "33": {
        "331": "自动扶梯",
        "332": "自动人行道",
    },
    "34": {
        "341": "防爆电梯",
        "342": "消防员电梯",
        "343": "杂物电梯",
    },
    "21":{
        "211": "超高压容器",
        "213": "第三类压力容器",
        "215": "第二类压力容器",
        "217": "第一类压力容器",    //=<低压>
    },
    "22":{
        "221": "铁路罐车",
        "222": "汽车罐车",
        "223": "长管拖车",
        "224": "罐式集装箱",
        "225": "管束式集装箱",
    },
    "23":{
        "231": "无缝气瓶",
        "232": "焊接气瓶",
        "23T": "特种气瓶（内装填料气瓶、纤维缠绕气瓶、低温绝热气瓶）",
    },
    "24":{
        "241": "医用氧舱",
        "242": "高气压舱",
    },
    "41":{
        "411": "通用桥式起重机",
        "413": "防爆桥式起重机",
        "414": "绝缘桥式起重机",
        "415": "冶金桥式起重机",
        "417": "电动单梁起重机",
        "419": "电动葫芦桥式起重机",
    },
    "42":{
        "421": "通用门式起重机",
        "422": "防爆门式起重机",
        "423": "轨道式集装箱门式起重机",
        "424": "轮胎式集装箱门式起重机",
        "425": "岸边集装箱起重机",
        "426": "造船门式起重机",
        "427": "电动葫芦门式起重机",
        "428": "装卸桥",
        "429": "架桥机",
    },
    "43":{
        "431": "普通塔式起重机",
        "432": "电站塔式起重机",
    },
    "44":{
        "441": "轮胎起重机",
        "442": "履带起重机",
        "444": "集装箱正面吊运起重机",
        "445": "铁路起重机",
    },
    "47":{
        "471": "门座起重机",
        "476": "固定式起重机",
    },
    "48":{
        "486": "施工升降机",
        "487": "简易升降机",
    },
    "49":{
        "491": "缆索式起重机",    //{490也成}
    },
    "4A":{
        "4A1": "桅杆式起重机",
    },
    "4D":{
        "4D1": "机械式停车设备",   //{4D0也成}
    },
    "81":{
        "811": "输油管道",
        "812": "输气管道",
    },
    "82":{
        "821": "燃气管道",
        "822": "热力管道",
    },
    "83":{
        "831": "工艺管道",
        "832": "动力管道",
        "833": "制冷管道",
    },
    "11": {
        "111": "承压蒸汽锅炉"
    },
    "12": {
        "121": "承压热水锅炉"
    },
    "13": {
        "131": "有机热载体气相炉",
        "132": "有机热载体液相炉",
    },
    "51":{
        "511": "叉车"  //非标准目录的：5120 "叉车(防爆功能)" 有24条数据?, 涉及报告？收费？
    },
    "52": {
        "521": "非公路用旅游观光车辆"
    },
    "61":{
        "611": "观览车类"
    },
    "62":{
        "621": "滑行车类"
    },
    "63":{
        "631": "架空游览车类"
    },
    "64":{
        "641": "陀螺类"
    },
    "65":{
        "651": "飞行塔类"
    },
    "66":{
        "661": "转马类"
    },
    "67":{
        "671": "自控飞机类"
    },
    "68":{
        "681": "赛车类"
    },
    "69":{
        "691": "小火车类"
    },
    "6A":{
        "6A1": "碰碰车类"
    },
    "6B":{
        "6B1": "滑道类"
    },
    "6D":{
        "6D1": "峡谷漂流系列",
        "6D2": "水滑梯系列",
        "6D4": "碰碰船系列",
    },
    "6E":{
        "6E1": "蹦极系列",
        "6E4": "滑索系列",
        "6E5": "空中飞人系列",
        "6E6": "系留式观光气球系列"
    },
    "91": {
        "912": "循环式客运架空索道",
        "911": "往复式客运架空索道",
    },
    "92": {
        "922": "循环式客运缆车",
        "921": "往复式客运缆车",
    },
    "93": {
        "932": "高位客运拖牵索道",
        "931": "低位客运拖牵索道",
    },
    "R3": {
        "R31": "液体危险货物常压容器(罐体)",
        "R32": "危险化学品常压容器",
    },
} as any;


/**要以 设备类别（第二层类别码） 来 查找 子设备品种的；
 * {非国家标准的 扩展分类!!} 用于做报告 选择模板/ 收费计算参数【最详细分类代码】。
 * 计费 在后端服务器中 可能用的。检验机构自己添加字段(业界统一定义)
 * */
export const 子设备品种 ={
    "31": {
        "3001": "有机房电梯",
        "3002": "无机房电梯",
    },
    "34": {
        "3001": "有机房电梯",
        "3002": "无机房电梯",
    },
    "21": {
        "2001": "大型压力容器",
        "2002": "球形容器",
        "2003": "液化气体储配站",
        "2004": "非大型压力容器",
        "2005": "超高压容器",
        "2006": "超高压水晶釜",
    },
    "48": {
        "4871": "简易升降机（电动葫芦式）",
        "4872": "简易升降机（曳引式）",
    },
    "4D": {
        "4001": "升降横移类机械式停车设备",
        "4002": "垂直循环类机械式停车设备",
        "4003": "多层循环类机械式停车设备",
        "4004": "平面移动类机械式停车设备",
        "4005": "巷道堆垛类机械式停车设备",
        "4006": "水平循环类机械式停车设备",
        "4007": "垂直升降类机械式停车设备",
        "4008": "简易升降类机械式停车设备"
    },
    "11": {
        "1002": "电站锅炉",
        "1003": "工业锅炉",
    },
    "12": {
        "1002": "电站锅炉",
        "1003": "工业锅炉",
    },
    "13": {
        "1002": "电站锅炉",
        "1003": "工业锅炉",
    },
    "52": {
        "5001": "内燃类",
        "5002": "电动类",
    },
    "6E": {
        "6001": "高空蹦极系列",
        "6002": "弹射蹦极系列",
        "6003": "小蹦极系列",
        "6004": "滑索系列",     //?和"6E4"重合，数据问题？报告/计费？"6005" ?"6006": 没数据
    },
} as any;

/**全部1 2 3 4个字符长度的设备 品种 子类型的类型*/
export const eqpTypeAllMap = new Map(Object.entries(设备种类));        //少了几个 F Z 7 单独报告的设备类型
//后续更多的： 全部=168个代码;
Object.entries(设备种类).map(([typek, typev], i) => (
    Object.entries(设备类别[typek] || {}).map(([sortk, sortv], i) => (
        eqpTypeAllMap.set(sortk, <string>sortv!) &&
        Object.entries(设备品种[sortk] || {}).map(([vartk, vartv], i) => (eqpTypeAllMap.set(vartk, <string>vartv!)) ) &&
        Object.entries(子设备品种[sortk] || {}).map(([subvk, subvv], i) => (eqpTypeAllMap.set(subvk, <string>subvv!)) )
    ))
));

